package org.example;

import java.io.*;
import java.util.ArrayList;

public class IO_Demo18 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //创建对象
        Student2 s1=new Student2("张三",18);
        //创建序列化流的对象/对象操作输出流
        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("目标文件路径"));
        //将对象写入文件
        oos.writeObject(s1);
        //释放资源
        oos.close();


        //利用反序列化流读取文件中的对象到程序中
        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("源文件路径"));
       //将文件中的对象读取到程序中
        Student2 s2 = (Student2) ois.readObject();//向下转型
        System.out.println(s2);
        //释放资源
        ois.close();


        //将多个自定义对象序列化到文件中，但是对象个数不确定的话就将成员放到一个集合中，
        //将集合序列化到文件中，反序列化时就可以直接将文件中的数据读取到集合中
        //反序列化也可以将集合中的数据读取到程序中
        ArrayList<Student2> list=new ArrayList<>();
        list.add(s1);
        list.add(s2);
        //将集合序列化到文件中
        oos=new ObjectOutputStream(new FileOutputStream("目标文件路径"));
        oos.writeObject(list);
        //释放资源
        oos.close();









    }
}
